The process of server or machine consolidation is often done manually after analyzing the historical workload pattern of the servers running one or more applications. However, manually consolidating applications among servers is often a time consuming process and depends on the subjective assessment of the decision maker. As the number of servers increase, it becomes extremely difficult to deal with the consolidation process manually.
Consolidation of server applications can also be done using an automated process using algorithms that assume fixed values of server resource consumption throughout over set time periods. The algorithms proposed to overcome the limitations of the manual process are motivated by the solution schemes proposed for solving the vector packing and the bin-packing problems. These algorithms are not accurate as they assume that the applications consume a fixed amount of resources throughout its lifetime. However, in reality, the amount of resources used by the applications can vary greatly. In fact, the ratio of peak utilization and slump utilization may be as high as 11:1. In other words, taking into consideration the actual levels of resource utilization by an application is difficult since resource consumption varies across different time instances within a particular time period.
What is needed is a system and method which exploits the knowledge of the resource utilization patterns of different applications to arrive at a better consolidation of applications onto one or more machines.